Dashed line in a diagram indicates propagate_immediately being false.

Akinori MUSHA 10 年之前
父節點
當前提交
0e80f53415
共有 2 個文件被更改,包括 8 次插入2 次删除
  1. 7 1
      app/helpers/dot_helper.rb
  2. 1 1
      spec/helpers/dot_helper_spec.rb

+ 7 - 1
app/helpers/dot_helper.rb

@@ -36,7 +36,13 @@ module DotHelper
36 36
         end
37 37
         agent.receivers.each do |receiver|
38 38
           next unless agents.include?(receiver)
39
-          dot << "%s->%s;" % [disabled_label(agent), disabled_label(receiver)]
39
+          dot << "%s->%s%s;" % [
40
+            disabled_label(agent),
41
+            disabled_label(receiver),
42
+            if rich
43
+              '[style=dashed]' unless receiver.propagate_immediately
44
+            end
45
+          ]
40 46
         end
41 47
       end
42 48
       dot << "}"

+ 1 - 1
spec/helpers/dot_helper_spec.rb

@@ -41,7 +41,7 @@ describe DotHelper do
41 41
         @bar.save!
42 42
 
43 43
         agents_dot([@foo, @bar]).should == 'digraph foo {"foo";"foo"->"bar";"bar";}'
44
-        agents_dot([@foo, @bar], true).should == 'digraph foo {"foo"[URL="/agents/%d"];"foo"->"bar";"bar"[URL="/agents/%d"];}' % [@foo.id, @bar.id]
44
+        agents_dot([@foo, @bar], true).should == 'digraph foo {"foo"[URL="/agents/%d"];"foo"->"bar"[style=dashed];"bar"[URL="/agents/%d"];}' % [@foo.id, @bar.id]
45 45
       end
46 46
     end
47 47
   end